"""
01 - Python 基础语法
与 Java 的主要差异：
1. 不需要分号
2. 使用缩进而不是大括号
3. 动态类型，无需声明变量类型
4. 代码块以冒号开始
"""

print("=== Python 基础语法 ===")

# 1. 变量声明 - 无需类型声明
name = "Python"                    # 字符串
age = 30                           # 整数
height = 1.75                      # 浮点数
is_developer = True                # 布尔值
nothing = None                     # 空值，类似 Java 的 null

print(f"name: {name}, type: {type(name)}")
print(f"age: {age}, type: {type(age)}")
print(f"height: {height}, type: {type(height)}")
print(f"is_developer: {is_developer}, type: {type(is_developer)}")
print(f"nothing: {nothing}, type: {type(nothing)}")

# 2. 动态类型 - 变量可以重新赋值为不同类型
print("\n--- 动态类型演示 ---")
variable = 10
print(f"初始: variable = {variable}, type = {type(variable)}")

variable = "现在我是字符串"
print(f"重新赋值: variable = {variable}, type = {type(variable)}")

variable = 3.14
print(f"再次重新赋值: variable = {variable}, type = {type(variable)}")

# 3. 多重赋值和链式赋值
print("\n--- 多重赋值 ---")
# 多重赋值
a, b, c = 1, 2, 3
print(f"a={a}, b={b}, c={c}")

# 链式赋值
x = y = z = 100
print(f"x={x}, y={y}, z={z}")

# 交换变量值 (Python 特色，不需要临时变量)
a, b = b, a
print(f"交换后: a={a}, b={b}")

# 4. 注释和文档字符串
print("\n--- 注释和文档字符串 ---")
# 这是单行注释

"""
这是多行注释（实际上是字符串）
可以写多行说明
"""

def example_function():
    """
    这是文档字符串 (docstring)
    用于描述函数的功能
    """
    pass

# 5. 基本输入输出
print("\n--- 输入输出 ---")
# 输入
user_input = input("请输入你的名字: ")
print(f"你好, {user_input}!")

# 格式化输出zhangsa
name = "Alice"
age = 25
print("姓名:", name, "年龄:", age)  # 多个参数
print("姓名: {}, 年龄: {}".format(name, age))  # format 方法
print(f"姓名: {name}, 年龄: {age}")  # f-string (推荐)

# 6. 基本运算符
print("\n--- 基本运算符 ---")
a, b = 10, 3

print(f"{a} + {b} = {a + b}")  # 加法
print(f"{a} - {b} = {a - b}")  # 减法
print(f"{a} * {b} = {a * b}")  # 乘法
print(f"{a} / {b} = {a / b}")  # 除法 (总是返回浮点数)
print(f"{a} // {b} = {a // b}")  # 整除
print(f"{a} % {b} = {a % b}")  # 取模
print(f"{a} ** {b} = {a ** b}")  # 幂运算

# 比较运算符
print(f"{a} == {b}: {a == b}")
print(f"{a} != {b}: {a != b}")
print(f"{a} > {b}: {a > b}")
print(f"{a} < {b}: {a < b}")

# 逻辑运算符
print(f"True and False: {True and False}")
print(f"True or False: {True or False}")
print(f"not True: {not True}")

# 7. 与 Java 语法对比
print("\n--- 与 Java 对比 ---")
"""
Java 代码对比:

// 变量声明
String name = "Java";
int age = 30;
double height = 1.75;
boolean isDeveloper = true;
Object nothing = null;

// 输出
System.out.println("姓名: " + name + ", 年龄: " + age);

// 交换变量值
int temp = a;
a = b;
b = temp;
"""

if __name__ == "__main__":
    print("\n=== 基础语法学习完成 ===")
    print(f"在 main_program.py 中，__name__ = {__name__}")